package com.alks.function.service.biocontrol.deptwork;

import com.alks.entity.data.entity.PcKpiDeptPersons;
import com.alks.entity.data.entity.PcProdTotalWeekTarget;
import com.alks.entity.data.page.PageParam;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.biocontrol.deptwork.KpiPersonRequest;
import com.alks.function.data.request.biocontrol.deptwork.ProdMonthRequest;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

public interface IProdTagService {
    ResponseInfo getProdMonthQuery(PageParam request, LocalDateTime month, String deptFlag);

    ResponseInfo prodMonthAdd(ProdMonthRequest request);

    ResponseInfo prodMonthUp(ProdMonthRequest request, String monthOld, String seqNoOld);

    ResponseInfo prodMonthDelete(String month, String seqNo);

    ResponseInfo getProdWeekQuery();

    ResponseInfo getProTarDefQuery();

    ResponseInfo proTarDefAdd(String deptName, BigDecimal weekTargetQty);

    ResponseInfo proTarDefUpdate(PcProdTotalWeekTarget request, String deptNameOld, String weekTargetQtyOld);

    ResponseInfo proTarDefDelete(String deptName, String weekTargetQty);

    ResponseInfo getProdPersonQuery();

    ResponseInfo getkpiPersonQuery(KpiPersonRequest request);

    ResponseInfo kpiPersonAdd(PcKpiDeptPersons request);

    ResponseInfo kpiPersonUp(PcKpiDeptPersons request, String deptType, String deptName, LocalDate dDate);

    ResponseInfo kpiPersonDelete(String deptType, String deptName, LocalDate dDate);

    ResponseInfo getMonthHolidayQuery(PageParam request, LocalDate dDate);

    ResponseInfo MonthHolidayAdd(LocalDate dDate);

    ResponseInfo MonthHolidayUp(LocalDate dDate, LocalDate dDateOld);

    ResponseInfo MonthHolidayDelete(LocalDate dDate);

    ResponseInfo prodUpdate(LocalDateTime month);

    ResponseInfo MonthDeptType();

    /**
     * 取最近月设定资料
     *
     * @param month 月份
     * @param tagMonth 目标月份
     */
    void lastMonthUp(LocalDateTime month, LocalDateTime tagMonth);
}
